#!/bin/sh
#
# Simple OS/Platform guesser. Similar to config.guess but
# much, much smaller. Since it was developed for use with
# Apache, it follows under Apache's regular licensing
# with one specific addition: Any changes or additions
# to this script should be Emailed to the Apache
# group (apache@apache.org) in general and to
# Jim Jagielski (jim@jaguNET.com) in specific.
#
# Be as similar to the output of config.guess/config.sub
# as possible.

# First get uname entries that we use below

MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
SYSTEM=`(uname -s) 2>/dev/null`  || SYSTEM="unknown"
VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"


# Now test for SCO, since it is has a braindamaged uname.
#
# We need to work around FreeBSD 1.1.5.1 
SCO=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'`
if [ "x$SCO" != "x" ]; then
    case "$SCO" in
   	3.2v4.2)
	    echo "whatever-whatever-sco3"; exit 0
	    ;;
	3.2v5.0*)
	    echo "whatever-whatever-sco5"; exit 0
	    ;;
	4.2MP)
            if [ "x$VERSION" = "x2.1.1" ]; then
                echo "${MACHINE}-whatever-unixware211"; exit 0
            else
                echo "${MACHINE}-whatever-unixware2"; exit 0
            fi
	    ;;
	4.2)
	    echo "whatever-whatever-unixware1"; exit 0
	    ;;
    esac
else
# Now we simply scan though... In most cases, the SYSTEM info is enough
#
    case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
    	A/UX:*)
	    echo "m68k-apple-aux3"; exit 0
	    ;;

	AIX:*)
	    echo "${MACHINE}-ibm-aix"; exit 0
	    ;;

	dgux:*)
	    echo "${MACHINE}-dg-dgux"; exit 0
	    ;;

	HP-UX:*)
	    HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'`
	    case "$HPUXVER" in
	    	10.*)
		    echo "${MACHINE}-hp-hpux10."; exit 0
		    ;;
		*)
		    echo "${MACHINE}-hp-hpux"; exit 0
		    ;;
	    esac
	    ;;

	IRIX:*)
	    echo "${MACHINE}-sgi-irix"; exit 0
	    ;;

	IRIX64:*)
	    echo "${MACHINE}-sgi-irix64"; exit 0
	    ;;

	Linux:*)
	    echo "${MACHINE}-whatever-linux"; exit 0
	    ;;

	LynxOS:*)
	    echo "${MACHINE}-lynx-lynxos"; exit 0
	    ;;

	BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
	    echo "i486-whatever-bsdi"; exit 0
	    ;;

	BSD/386:*|BSD/OS:*)
	    echo "${MACHINE}-whatever-bsdi"; exit 0
	    ;;

	FreeBSD:*:*:*486*)
	    echo "i486-whatever-freebsd"; exit 0
	    ;;

	FreeBSD:*)
	    echo "${MACHINE}-whatever-freebsd"; exit 0
	    ;;

	NetBSD:*:*:*486*)
	    echo "i486-whatever-netbsd"; exit 0
	    ;;

	NetBSD:*)
	    echo "${MACHINE}-whatever-netbsd"; exit 0
	    ;;

	OSF1:*:*:*alpha*)
	    echo "${MACHINE}-dec-osf"; exit 0
	    ;;

	QNX:*)
	    case "$VERSION" in
		423)
		    echo "${MACHINE}-qssl-qnx32"
		    ;;
		*)
		    echo "${MACHINE}-qssl-qnx"
		    ;;
	    esac
	    exit 0
	    ;;

	SunOS:5.*)
	    echo "${MACHINE}-sun-solaris2"; exit 0
	    ;;

	SunOS:*)
	    echo "${MACHINE}-sun-sunos4"; exit 0
	    ;;

	UNIX_System_V:4.*:*)
	    echo "${MACHINE}-whatever-sysv4"; exit 0
	    ;;

	*:4*:R4*:m88k)
	    echo "${MACHINE}-whatever-sysv4"; exit 0
	    ;;

	DYNIX/ptx:4*:*)
	    echo "${MACHINE}-whatever-sysv4"; exit 0
	    ;;

	*:4.0:3.0:3[34]??,* | *:4.0:3.0:3[34]??,*)
	    echo "${MACHINE}-whatever-sysv4"; exit 0
	    ;;

	*:4.0:*:3[34]??,* | *:4.0:*:3[34]??,*)
	    echo "${MACHINE}-whatever-sysv4"; exit 0
	    ;;

	ULTRIX:*)
	    echo "${MACHINE}-unknown-ultrix"; exit 0
	    ;;

	SINIX*)
	    echo "${MACHINE}-sni-sysv4"; exit 0
	    ;;

	library:*)
	    echo "${MACHINE}-ncr-sysv4"; exit 0
	    ;;

    esac
fi

#
# Ugg. These are all we can determine by what we know about
# the output of uname. Be more creative:
#

# Do the Apollo stuff first. Here, we just simply assume
# that the existance of the /usr/apollo directory is proof
# enough
if [ -d /usr/apollo ]; then
    echo "whatever-apollo-whatever"
    exit 0
fi

# Now NeXT
ISNEXT=`hostinfo 2>/dev/null`
case "$ISNEXT" in
    *NeXT*)
	echo "whatever-next-nextstep"; exit 0
	;;
esac

# At this point we gone through all the one's
# we know of: Punt

echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}" 
exit 0
